package top.infopub.job.fia.service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import top.infopub.generic.GenericService;
import top.infopub.job.fia.domain.ProBudgetDetailDomain;
import top.infopub.model.fia.ProBudgetDetail;

public interface ProBudgetDetailService extends GenericService<ProBudgetDetail, String> {
 
	/** codegen **/
    
    /**
     * 分组区域公司某一个月的融资额计划，区域公司下属项目公司之和
     * @param where </br>
     *        belongsYear int 预算年度
     *        months int 预算月份
     * @return 
     * @see
     */
    List<ProBudgetDetailDomain> sumMonthFinFeeOfArea(Map<String, Object> where);
    
    /**
     * 计算总部公司某一个月的融资额计划，全部项目公司之和  排除hr_org_pro_id为null<项目与公司未绑定>
     * @param where </br>
     *        belongsYear int 预算年度
     *        months int 预算月份
     * @return 
     * @see
     */
    BigDecimal sumMonthFinFeeOfSuper(Map<String, Object> where);
    
    /**
     * 分组区域公司某一个月的投资性现金流入计划，区域公司下属项目公司之和
     * @param where </br>
     *        belongsYear int 预算年度
     *        months int 预算月份
     * @return 
     * @see
     */
    List<ProBudgetDetailDomain> sumMonthCashInOfArea(Map<String, Object> where);
    
    /**
     * 计算总部公司某一个月的投资性现金流入计划，全部项目公司之和  排除hr_org_pro_id为null<项目与公司未绑定>
     * @param where </br>
     *        belongsYear int 预算年度
     *        months int 预算月份
     * @return 
     * @see
     */
    BigDecimal sumMonthCashInOfSuper(Map<String, Object> where);
    
    /**
     * 分组区域公司某一个月的投资性现金流出计划，区域公司下属项目公司之和
     * @param where </br>
     *        belongsYear int 预算年度
     *        months int 预算月份
     * @return 
     * @see
     */
    List<ProBudgetDetailDomain> sumMonthCashOutOfArea(Map<String, Object> where);
    
    /**
     * 计算总部公司某一个月的投资性现金流出计划，全部项目公司之和  排除hr_org_pro_id为null<项目与公司未绑定>
     * @param where </br>
     *        belongsYear int 预算年度
     *        months int 预算月份
     * @return 
     * @see
     */
    BigDecimal sumMonthCashOutOfSuper(Map<String, Object> where);
    
    /**
     * 分组区域公司某一个月的投资额计划，区域公司下属项目公司之和
     * @param where </br>
     *        belongsYear int 预算年度
     *        months int 预算月份
     * @return 
     * @see
     */
    List<ProBudgetDetailDomain> sumMonthInvestOfArea(Map<String, Object> where);
    
    /**
     * 计算总部公司某一个月的投资额计划，全部项目公司之和  排除hr_org_pro_id为null<项目与公司未绑定>
     * @param where </br>
     *        belongsYear int 预算年度
     *        months int 预算月份
     * @return 
     * @see
     */
    BigDecimal sumMonthInvestOfSuper(Map<String, Object> where);
    
    /**
     * 分组区域公司某一个月的管理净利润计划，区域公司下属项目公司之和
     * @param where </br>
     *        belongsYear int 预算年度
     *        months int 预算月份
     * @return 
     * @see
     */
    List<ProBudgetDetailDomain> sumMonthProfitOfArea(Map<String, Object> where);
    
    /**
     * 计算总部公司某一个月的管理净利润计划，全部项目公司之和  排除hr_org_pro_id为null<项目与公司未绑定>
     * @param where </br>
     *        belongsYear int 预算年度
     *        months int 预算月份
     * @return 
     * @see
     */
    BigDecimal sumMonthProfitOfSuper(Map<String, Object> where);
    
}